// 测试类，用于验证MyStackUseQueue的实现是否正确
public class TestMyStackUseQueue {

    public static void main(String[] args) {
        MyStackUseQueue stack = new MyStackUseQueue();

        // 测试1：初始时栈应为空
        System.out.println("Test1 - 初始栈是否为空: " + stack.empty());  // 预期：true

        // 测试2：压入元素后栈非空，查看栈顶
        stack.push(10);
        System.out.println("\nTest2 - 压入10后栈是否为空: " + stack.empty());  // 预期：false
        System.out.println("Test2 - 查看栈顶元素: " + stack.top());          // 预期：10

        // 测试3：弹出元素后栈恢复为空
        int popResult = stack.pop();
        System.out.println("\nTest3 - 弹出元素: " + popResult);              // 预期：10
        System.out.println("Test3 - 弹出后栈是否为空: " + stack.empty());    // 预期：true

        // 测试4：连续压入多个元素，验证后进先出特性
        stack.push(20);
        stack.push(30);
        stack.push(40);
        System.out.println("\nTest4 - 弹出元素顺序1: " + stack.pop());      // 预期：40
        System.out.println("Test4 - 弹出元素顺序2: " + stack.pop());        // 预期：30
        System.out.println("Test4 - 当前栈顶元素: " + stack.top());         // 预期：20

        // 测试5：压入新元素后再次验证
        stack.push(50);
        System.out.println("\nTest5 - 当前栈顶元素: " + stack.top());       // 预期：50
        System.out.println("Test5 - 弹出元素: " + stack.pop());            // 预期：50
        System.out.println("Test5 - 剩余栈顶元素: " + stack.top());         // 预期：20

        // 测试6：清空栈后操作空栈
        System.out.println("\nTest6 - 弹出最后一个元素: " + stack.pop());   // 预期：20
        System.out.println("Test6 - 尝试弹出空栈: " + stack.pop());        // 预期：-1

        System.out.println("Test6 - 尝试查看空栈栈顶: " + stack.top());    // 预期：-1
    }
}